package sv.gob.mtps.sib.model;

// Generated 11-22-2012 10:00:32 AM by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * ProductoHasObjetoespecifico generated by hbm2java
 */
@Entity
@Table(name = "producto_has_objetoespecifico", schema = "sib")
public class ProductoHasObjetoespecifico implements java.io.Serializable {

	private int idProductoHasObjetoespecifico;
	private Objetoespecifico objetoespecifico;
	private Producto producto;
	private String numeroProducto;
	private Set<FacturaHasProducto> facturaHasProductos = new HashSet<FacturaHasProducto>(
			0);
	private Set<Inventario> inventarios = new HashSet<Inventario>(0);

	public ProductoHasObjetoespecifico() {
	}

	public ProductoHasObjetoespecifico(int idProductoHasObjetoespecifico,
			Objetoespecifico objetoespecifico, Producto producto) {
		this.idProductoHasObjetoespecifico = idProductoHasObjetoespecifico;
		this.objetoespecifico = objetoespecifico;
		this.producto = producto;
	}

	public ProductoHasObjetoespecifico(int idProductoHasObjetoespecifico,
			Objetoespecifico objetoespecifico, Producto producto,
			String numeroProducto, Set<FacturaHasProducto> facturaHasProductos,
			Set<Inventario> inventarios) {
		this.idProductoHasObjetoespecifico = idProductoHasObjetoespecifico;
		this.objetoespecifico = objetoespecifico;
		this.producto = producto;
		this.numeroProducto = numeroProducto;
		this.facturaHasProductos = facturaHasProductos;
		this.inventarios = inventarios;
	}

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name = "id_producto_has_objetoespecifico", unique = true, nullable = false)
	public int getIdProductoHasObjetoespecifico() {
		return this.idProductoHasObjetoespecifico;
	}

	public void setIdProductoHasObjetoespecifico(
			int idProductoHasObjetoespecifico) {
		this.idProductoHasObjetoespecifico = idProductoHasObjetoespecifico;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_objetoespecifico", nullable = false)
	public Objetoespecifico getObjetoespecifico() {
		return this.objetoespecifico;
	}

	public void setObjetoespecifico(Objetoespecifico objetoespecifico) {
		this.objetoespecifico = objetoespecifico;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_producto", nullable = false)
	public Producto getProducto() {
		return this.producto;
	}

	public void setProducto(Producto producto) {
		this.producto = producto;
	}

	@Column(name = "numero_producto", length = 256)
	public String getNumeroProducto() {
		return this.numeroProducto;
	}

	public void setNumeroProducto(String numeroProducto) {
		this.numeroProducto = numeroProducto;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "productoHasObjetoespecifico")
	public Set<FacturaHasProducto> getFacturaHasProductos() {
		return this.facturaHasProductos;
	}

	public void setFacturaHasProductos(
			Set<FacturaHasProducto> facturaHasProductos) {
		this.facturaHasProductos = facturaHasProductos;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "productoHasObjetoespecifico")
	public Set<Inventario> getInventarios() {
		return this.inventarios;
	}

	public void setInventarios(Set<Inventario> inventarios) {
		this.inventarios = inventarios;
	}

}
